package com.cxhc.system.service.app;


import com.cxhc.system.domain.app.Examination;
import com.cxhc.system.domain.app.ExaminationQuestion;
import com.cxhc.system.domain.app.ExaminationUserQuestion;

import java.util.List;

/**
 * 小程序考试服务
 *
 * @author wuxuan
 * @date 2024-07-30
 */
public interface IExaminationService {

    /**
     * 获取所有考试列表
     *
     * @return 获取所有考试列表
     */
    List<Examination> getAllExamination(Examination examinationApp);

    /**
     * 查询考试的列
     *
     * @param id 考试的列主键
     * @return 考试的列
     */
    public Examination selectExaminationById(Long id);

    /**
     * 新增考试的列
     *
     * @param examination 考试的列
     * @return 结果
     */
    public int insertExamination(Examination examination);

    /**
     * 修改考试的列
     *
     * @param examination 考试的列
     * @return 结果
     */
    public int updateExamination(Examination examination);

    /**
     * 批量删除考试的列
     *
     * @param ids 需要删除的考试的列主键集合
     * @return 结果
     */
    public int deleteExaminationByIds(Long[] ids);


    /**
     * 用户提交考试
     *
     * @return 获取考试考题列表
     */
    int submit(List<ExaminationUserQuestion> examinationUserQuestion);

    /**
     * 根据时间变更状态
     *
     * @return
     */
    void statusCheck();

    /**
     * 计算考试成绩
     *
     * @return 获取考试考题列表
     */
    float calculateScore(String userId,String examinationId);

    /**
     * 查询用户历史考试
     *
     * @return 查询用户历史考试
     */
    List<Examination> queryExaminationByUserId(String userId);
}
